package com.twu.biblioteca.models.entities;

import com.twu.biblioteca.config.MenuOption;
import com.twu.biblioteca.models.services.UserService;
import com.twu.biblioteca.views.MenuView;

import java.util.ArrayList;
import java.util.List;

import static com.twu.biblioteca.config.MenuOption.LOGOIN;
import static com.twu.biblioteca.config.MenuOption.SHOW_USER_INFO;

public class Menu {
    private static List<MenuOption> menuOptions = new ArrayList<MenuOption>();

    public static void addMenuOption(MenuOption menuOption) {
        menuOptions.add(menuOption);
    }

    public static List<MenuOption> getMenuOptions() {
        return menuOptions;
    }


    public static MenuOption getMenuOptionAt(int menuOptionNumber) {
        MenuOption menuOption = null;
        try {
            menuOption = menuOptions.get(menuOptionNumber);
        }catch(Exception e){
            MenuView.handleChoosedInvalidMenuOption();
        }
        return menuOption;
    }

    public static void updateMenuOptionAccorodingUserLogin() {
        if (UserService.currentUser != null) {
           Menu.removeMenuOption(LOGOIN);
           Menu.addMenuOption(SHOW_USER_INFO);
        }
    }

    private static void removeMenuOption(MenuOption menuOption) {
        menuOptions.remove(menuOption);
    }
}
